/*
 * Copyright (C) 2006-2012 TongYan Corporation
 * All rights reserved.
 *
 * @brief info:
 *
 * @author: 王哲成 - wangzhecheng@yeah.net
 * @date: 2021.05.19
 * @last modified: 2021-05-19 14:31
 *
 */

#ifndef __STEEP_DESCENT_METHOD_HEADER
#define __STEEP_DESCENT_METHOD_HEADER

#include "LocalSearchMethod.hpp"

class SteepestDescentMethod : public LocalSearchMethod {
public:
  SteepestDescentMethod(const ISGObjectFunction *const ptr, const size_t &nseed,
                        const double &epsilon = 1e-2)
      : LocalSearchMethod(ptr, nseed, epsilon) {}

  // 迭代更新点的位置，收敛返回true，否则false
  virtual bool updateSearchPoint(const ParamSet &param_set,
                                 Candidate &candidate) const override;
};

#endif
